/* ****************************************************************************
 *
 * Copyright (c) Microsoft Corporation. 
 *
 * This source code is subject to terms and conditions of the Microsoft Public License. A 
 * copy of the license can be found in the License.html file at the root of this distribution. If 
 * you cannot locate the  Microsoft Public License, please send an email to 
 * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound 
 * by the terms of the Microsoft Public License.
 *
 * You must not remove this notice, or any other, from this software.
 *
 *
 * ***************************************************************************/

namespace Microsoft.Scripting.Ast {
    /// <summary>
    /// Walker class - The DLR AST Walker
    /// </summary>
    internal partial class Walker {

        #region Generated DLR AST Walker

        // *** BEGIN GENERATED CODE ***
        // generated by function: gen_scripting_walker from: generate_tree.py

        // ActionExpression
        protected virtual bool Walk(ActionExpression node) { return true; }
        protected virtual void PostWalk(ActionExpression node) { }

        // AssignmentExpression
        protected virtual bool Walk(AssignmentExpression node) { return true; }
        protected virtual void PostWalk(AssignmentExpression node) { }

        // BinaryExpression
        protected virtual bool Walk(BinaryExpression node) { return true; }
        protected virtual void PostWalk(BinaryExpression node) { }

        // Block
        protected virtual bool Walk(Block node) { return true; }
        protected virtual void PostWalk(Block node) { }

        // BreakStatement
        protected virtual bool Walk(BreakStatement node) { return true; }
        protected virtual void PostWalk(BreakStatement node) { }

        // ConditionalExpression
        protected virtual bool Walk(ConditionalExpression node) { return true; }
        protected virtual void PostWalk(ConditionalExpression node) { }

        // ConstantExpression
        protected virtual bool Walk(ConstantExpression node) { return true; }
        protected virtual void PostWalk(ConstantExpression node) { }

        // ContinueStatement
        protected virtual bool Walk(ContinueStatement node) { return true; }
        protected virtual void PostWalk(ContinueStatement node) { }

        // DeleteExpression
        protected virtual bool Walk(DeleteExpression node) { return true; }
        protected virtual void PostWalk(DeleteExpression node) { }

        // DoStatement
        protected virtual bool Walk(DoStatement node) { return true; }
        protected virtual void PostWalk(DoStatement node) { }

        // EmptyStatement
        protected virtual bool Walk(EmptyStatement node) { return true; }
        protected virtual void PostWalk(EmptyStatement node) { }

        // InvocationExpression
        protected virtual bool Walk(InvocationExpression node) { return true; }
        protected virtual void PostWalk(InvocationExpression node) { }

        // LabeledStatement
        protected virtual bool Walk(LabeledStatement node) { return true; }
        protected virtual void PostWalk(LabeledStatement node) { }

        // LambdaExpression
        protected virtual bool Walk(LambdaExpression node) { return true; }
        protected virtual void PostWalk(LambdaExpression node) { }

        // LocalScopeExpression
        protected virtual bool Walk(LocalScopeExpression node) { return true; }
        protected virtual void PostWalk(LocalScopeExpression node) { }

        // LoopStatement
        protected virtual bool Walk(LoopStatement node) { return true; }
        protected virtual void PostWalk(LoopStatement node) { }

        // MemberExpression
        protected virtual bool Walk(MemberExpression node) { return true; }
        protected virtual void PostWalk(MemberExpression node) { }

        // MethodCallExpression
        protected virtual bool Walk(MethodCallExpression node) { return true; }
        protected virtual void PostWalk(MethodCallExpression node) { }

        // NewArrayExpression
        protected virtual bool Walk(NewArrayExpression node) { return true; }
        protected virtual void PostWalk(NewArrayExpression node) { }

        // NewExpression
        protected virtual bool Walk(NewExpression node) { return true; }
        protected virtual void PostWalk(NewExpression node) { }

        // ParameterExpression
        protected virtual bool Walk(ParameterExpression node) { return true; }
        protected virtual void PostWalk(ParameterExpression node) { }

        // ReturnStatement
        protected virtual bool Walk(ReturnStatement node) { return true; }
        protected virtual void PostWalk(ReturnStatement node) { }

        // ScopeExpression
        protected virtual bool Walk(ScopeExpression node) { return true; }
        protected virtual void PostWalk(ScopeExpression node) { }

        // SwitchStatement
        protected virtual bool Walk(SwitchStatement node) { return true; }
        protected virtual void PostWalk(SwitchStatement node) { }

        // ThrowStatement
        protected virtual bool Walk(ThrowStatement node) { return true; }
        protected virtual void PostWalk(ThrowStatement node) { }

        // TryStatement
        protected virtual bool Walk(TryStatement node) { return true; }
        protected virtual void PostWalk(TryStatement node) { }

        // TypeBinaryExpression
        protected virtual bool Walk(TypeBinaryExpression node) { return true; }
        protected virtual void PostWalk(TypeBinaryExpression node) { }

        // UnaryExpression
        protected virtual bool Walk(UnaryExpression node) { return true; }
        protected virtual void PostWalk(UnaryExpression node) { }

        // VariableExpression
        protected virtual bool Walk(VariableExpression node) { return true; }
        protected virtual void PostWalk(VariableExpression node) { }

        // YieldStatement
        protected virtual bool Walk(YieldStatement node) { return true; }
        protected virtual void PostWalk(YieldStatement node) { }

        // CatchBlock
        protected virtual bool Walk(CatchBlock node) { return true; }
        protected virtual void PostWalk(CatchBlock node) { }

        // IfStatementTest
        protected virtual bool Walk(IfStatementTest node) { return true; }
        protected virtual void PostWalk(IfStatementTest node) { }

        // SwitchCase
        protected virtual bool Walk(SwitchCase node) { return true; }
        protected virtual void PostWalk(SwitchCase node) { }

        // *** END GENERATED CODE ***

        #endregion

    }
}
